public class SimpleStack {
    private int[] stackArray; // 用于存储栈中元素的数组
    private int top; // 栈顶指针，指向栈顶元素的索引

    // 构造函数，初始化栈的大小
    public SimpleStack(int size) {
        stackArray = new int[size];
        top = -1; // 初始化时栈为空，栈顶指针为-1
    }

    // 将元素压入栈
    public void push(int value) {
        if (top == stackArray.length - 1) {
            System.out.println("栈已满，无法压入元素！");
        } else {
            stackArray[++top] = value; // 先将栈顶指针加1，然后存储元素
        }
    }

    // 弹出栈顶元素
    public int pop() {
        if (isEmpty()) {
            System.out.println("栈为空，无法弹出元素！");
            return -1; // 返回一个错误标志
        } else {
            return stackArray[top--]; // 返回栈顶元素，并将栈顶指针减1
        }
    }

    // 查看栈顶元素
    public int peek() {
        if (isEmpty()) {
            System.out.println("栈为空，无法查看栈顶元素！");
            return -1; // 返回一个错误标志
        } else {
            return stackArray[top]; // 返回栈顶元素
        }
    }

    // 检查栈是否为空
    public boolean isEmpty() {
        return top == -1; // 如果栈顶指针为-1，表示栈为空
    }

    // 打印栈的内容（用于调试）
    public void printStack() {
        if (isEmpty()) {
            System.out.println("栈为空！");
        } else {
            System.out.print("栈内容：");
            for (int i = 0; i <= top; i++) {
                System.out.print(stackArray[i] + " ");
            }
            System.out.println();
        }
    }

    // 测试栈的功能
    public static void main(String[] args) {
        SimpleStack stack = new SimpleStack(5); // 创建一个大小为5的栈

        stack.push(10);
        stack.push(20);
        stack.push(30);
        stack.printStack(); // 输出：栈内容：10 20 30

        System.out.println("栈顶元素：" + stack.peek()); // 输出：栈顶元素：30
        stack.pop();
        stack.printStack(); // 输出：栈内容：10 20

        System.out.println("栈是否为空：" + stack.isEmpty()); // 输出：栈是否为空：false
    }
}